package com.ruipengkj.model;

import java.util.ArrayList;
import java.util.List;
import java.util.Vector;

import javax.swing.table.AbstractTableModel;

import com.ruipengkj.bean.TRole;
import com.ruipengkj.view.systemView.PrivilegePOJO;

public class SystemManagePrivilegeModel extends AbstractTableModel {

	private static final long serialVersionUID = 1L;
	private List<TRole> tRoleList=new ArrayList<TRole>();
	private List<PrivilegePOJO> boolsList = new ArrayList<PrivilegePOJO>();
	private Vector<String> columns = new Vector<String>();
	public SystemManagePrivilegeModel(){
		columns.add("角色名称");
		columns.add("角色说明");
		columns.add("销售订单");
		columns.add("在线订单");
		columns.add("在线预订单");
		columns.add("订单评论");
		columns.add("销售退货单");
		columns.add("会员发卡");
		columns.add("会员补卡");
		columns.add("会员卡查询");
		columns.add("会员卡充值");
		columns.add("商品管理");
		columns.add("员工管理");
		columns.add("仓库管理");
		columns.add("供应商管理");
		columns.add("商店管理");
		columns.add("采购进货");
		columns.add("采购退货");
		columns.add("仓库调拨");
		columns.add("商品报损");
		columns.add("物品领用");
		columns.add("其他方式出库单");
		columns.add("库存预警");
		columns.add("出入库存单查询");
		columns.add("采购报表");
		columns.add("库存报表");
		columns.add("销售报表");
		columns.add("资金报表");
		columns.add("利润报表");
		columns.add("操作日记管理");
		columns.add("角色权限管理");
		columns.add("系统配置设置");
		columns.add("条码生成管理");
		columns.add("数据库备份还原");
	}
	//获得行数
	public int getRowCount(){
		return tRoleList.size();
	}
	//获得列数
	public int getColumnCount(){
		return columns.size();
	}
	//获得单元格的值
	public Object getValueAt(int row,int column){
		TRole tRole = tRoleList.get(row);
		PrivilegePOJO booleans = boolsList.get(row);
		switch(column) {
		case 0:
			return tRole.getName();
		case 1:
			return tRole.getDes();
		default:
			return booleans.getBool(column-2);
		}
	}
	
	//设置单元格的值
	public void setValueAt(Object aValue,int rowIndex,int columnIndex){
		super.setValueAt(aValue, rowIndex, columnIndex);
	}

	//获取列名
	public String getColumnName(int column){
		return (String)columns.get(column);
	}
	
	//获取列对应的类型
	public Class<?> getColumnClass(int column){
		if(column >= 2){
			return Boolean.class;
		} else {
			return String.class;
		}
	}
	
	//设置单元格是否可编辑
	public boolean isCellEditable(int rowIndex,int columnIndex){
		return true;
	}
	
	public void addRow(TRole tRole, PrivilegePOJO bools) {
		this.tRoleList.add(tRole);
		this.boolsList.add(bools);
	}
	
	public void delRow(int row){
		tRoleList.remove(row);
		boolsList.remove(row);
	}
	
	public void setRowData(List<TRole> tRoleList, List<PrivilegePOJO> boolsList) {
		this.tRoleList = tRoleList;
		this.boolsList = boolsList;
	}

	public void clear(){
		tRoleList.clear();
		boolsList.clear();
	}
}
